1. Field of the Invention
The present invention relates generally to an arrangement for optically inspecting patterned images for defects, and more particularly pertains to an unique optical sensor system for examining a printed wiring board for any defects thereon.
2. Discussion of the Prior Art
The detection of defective printed wire circuit boards presents a rather complex problem, the solution of which would yield significant and immediate economic benefits. This quality control problem extends from the fabrication of conventional printed wiring boards to the high resolution masks employed in photolithography for very large scale integrated (VLSI) circuits. A typical modern printed circuit board manufacturing facility is an interesting study in contrasts. Most of the fabrication operations such as printing, plating, drilling, routing, etc., are heavily automated. But, inspection of the completed boards is frequently performed manually by inspectors with magnifiers who visually check the boards and artwork for flaws. It turns out that in many cases, the inspection of a printed circuit board is as expensive as its manufacture because of the labor intensive activity involved therein.
The inspection of the inner layers of multilayer printed circuit boards is particularly important for a number of reasons. They are extremely difficult to inspect because of the small line width and the density and complexity of the patterns thereon. Moreover, a complete one hundred percent visual inspection of inner layer boards is usually required because of the expense of rejecting a completed laminated board at the final electrical test.
Automated inspection of printed circuit boards would appear to be particularly applicable to multilayer boards as they are often computer designed and plotter generated, which implies a uniformity of lines and spaces as well as an absence of lettering and extraneous markings in the circuitry area. Initial investigations into automated inspection of printed wire boards included consideration of image comparison techniques using either a master printed circuit board, the artwork, or a computer stored map. However, this concept was not pursued as troublesome problems were encountered. Since the instantaneous area of the scanned image, or pixel-under-test, must match the corresponding area of the master, exact alignment is necessary at every point on the board. Shrinking or swelling of the board due to changes in temperature or humidity would have to be compensated for, as would the normal and perfectly acceptable variations in the widths of the lines and spaces of the pattern. As a result of these problems, it became evident that the complexities inherent in the mechanization of this technique would make the finished instrument only marginally economical as a replacement for human inspectors.
Similar problems exist with a comparison of optical Fourier transforms. In this case, if a line at the edge of the scanned area is included in one field of view and omitted from the other as a result of scan misalignment, the Fourier energy distributions will not match.
Bentley in "the inspectron: an automated optical printed circuit board (PCB) inspector", SPIE Vol. 201, Optical Pattern Recognition (1979), p 37-47, discloses an automated printed wire circuit board inspection machine which mechanically scans a hardwired distance-measuring sensor array of photodetectors over the circuit board and utilizes logical decisions on the image pattern of the illuminated and nonilluminated detector to detect defective circuit boards.
Restrick in "An Automatic Printed Circuit Inspection System" SPIE Vol 116 Solid State Imaging Devices (1977) describes a system for printed circuit inspection which does not require mechanical scanning of the sensor array over the circuit board. Instead, optical sensors scan a swath of a board as the sample board moves by on a support table.
Three sensing units each scanning a 1.6 inch wide swath of the moving sample are used. A lens associated with each sensing unit images a moving sample onto a 1728 element linear solid-state optical sensor. The sensor is positioned perpendicular to the direction of motion so that the sample is scanned mechanically in one direction and electronically by the sensor in the other. The portion of the object being imaged onto the array is illuminated from each side by miniature tungsten-halogen lamps and cylindrical lenses.
Buffers are mounted close to the sensing array to relay the driving waveforms to it. The array output is amplified and quantized to binary levels-indicating the presence of one of two materials. The quantization is made by comparing the array output with threshold values. To correct for spatial nonuniformities in the illumination, optics, and sensor, each sensor has its own threshold value. As each successive element is read out, an eight bit digital threshold value, retrieved from a memory is converted to an analog value and substracted from it. The threshold values are created automatically by placing a uniform standard reflectance target in the optical system prior to inspection.
Shift registers store individual line scans. A special purpose processor consisting of registers to manipulate and temporarily store the data, and digital logic to implement the error detecting algorithm is required for each sensing unit. Six consecutive scan lines are stored by daisy chaining six 2048-bit shift registers. The array scans in the y direction and the object is scanned mechanically in the x direction. The output of each register is a bit stream representing successive y positions for fixed x. Six consecutive outputs from each of the six shift registers are stored in single bit registers. Simple combinational logic applies line width/line spacing criteria to the contents of the registers. With each clock pulse a new 6.times.6 area is stored in the shift registers and the error criteria applied.
As errors are detected, position sensing unit identification and error type (clearance or width) information are stored on a stack-organized memory. A microprocessor retrieves this information from the stack and stores it along with the table position. At the end of the inspection operation, the information is used to calculate x and y coordinates relative to the circuit being inspected, and the error locations are printed out.